課程資訊
課程名稱
計算機程式
Computer Programming 
開課學期
108-1 
授課對象
數學系  
授課教師
林宗男 
課號
EE1004 
課程識別碼
901 10210 
班次
03 
學分
3.0 
全/半年
半年 
必/選修
必修 
上課時間
星期二6(13:20~14:10)星期三8,9(15:30~17:20) 
上課地點
博理113博理113 
備註
本系優先。數學系10名。
限本系所學生(含輔系、雙修生)
總人數上限:60人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1081_Python 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

Python是一門十分簡潔、高效率的程式語言;且其學習曲線平緩,網路上的學習資源非常多,很適合程式新手入門。雖然適合初學者,不過python的開源套件也非常多,可以深入各領域的研究。例如最近發展中的人工智慧所使用的深度學習方法,Python所擁用的套件在所有的程式語言中幾乎是最完善的。本課程希望以深入淺出的方式,帶領學生從python入門,最後能夠利用程式碼來解決各領域的專業問題。

本課程以物件導向(Object-oriented programming)概念為主軸介紹程式語言。 本課程會以 Python 語言為主要介紹OOP的語言。 Python 語言強調其 "code readability". 對於同樣的問題 ,用 Python 來解決的程式會比用 c/c++ 來的簡單。 根據最新統記指出,Python 是美國頂尖大學裡最常用的入門程式語言。

本課程以Python3 程式語言介紹OOP的概念並比較Python與C++的不同之處,此外還會利用vPython以3D模擬的方式模擬物體運動。



除了正課上課時間,本課程搭配於每個星期二晚上的計算機程式設計實驗。


1. Intro. to Python and Class
2.Control structure
3.List, Set, Dict
4.Strings
5.Functions
6.Classes and data abstraction
7.Operator overloading
8.Inheritance
9.Polymorphism 

課程目標
能夠熟練寫Python程式碼,並以此來解決問題。 
課程要求
本課程完全不需要程式語言的先備能力。但修課同學必須注意,在學期開始之前必須要先安裝好程式環境,並至網路資源(Codecademy)學習Python。之後還要依照Ceiba上提供的Vpython教材練習。 
預期每週課後學習時數
 
Office Hours
另約時間 
指定閱讀
待補 
參考書目
教科書 :
[1] How to Think Like a Computer Scientist
http://www.greenteapress.com/thinkpython/thinkCSpy.pdf
[2] Python Tutorial
https://docs.python.org/2/tutorial/

[3] Problem Solving with Algorithms and Data Structures
http://interactivepython.org/runestone/static/pythonds/index.html



[3] Problem Solving with Algorithms and Data Structures
http://interactivepython.org/runestone/static/pythonds/index.html

網路學習資源:
[1]Codecademy
https://www.codecademy.com/catalog/language/python
 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
Final Project  
15% 
 
2. 
Final Exam 
30% 
 
3. 
Homework + Lab  
25% 
 
4. 
Mid-term Exam 
30% 
 
 
課程進度
週次
日期
單元主題
第1週
  Plotting with Matplotlib 
第2週
  (1) Variables, Expressions, and Statements
(2) String Format Operation / IO
(3) Basic Function  
第3週
  (1) Logics and Conditionals
(2) Loops and Lists 
第4週
  (1) More about Function
(2) More about List 
第5週
  (1) More about functions
(2) Recursions 
第6週
  (1) Another Sorting Algorithm
(2) Set and Dict 
第7週
  (1) Quick Sort
(2) Random 
第8週
  (1) More about Strings
(2) Machine Learning: Digit Recognition
(3) High Order Functions 
第9週
  Midterm Review (Asking Questions) 
第10週
  Midterm Exam (11/12 18:00 @ 計中 212) 
第11週
  (1) More about Functions
(2) Function Decorators 
第12週
  (1) Class and object 
第13週
  (1) Class and Function
(2) Object-Oriented Programming 
第14週
  (1) More about Class
(2) Data Abstraction 
第15週
  (1) Inheritance 
第17週
  Final Project Demo
(1) 12/30 18:30 @ BL113
(2) 12/31 18:30 @ BL113 
第18週
  Final Exam (01/08 18:30 @ 計中 212)